package oracle.apps.financials.collection.po;

import java.util.ArrayList;
import java.util.List;

import org.achartengine.chart.PointStyle;
import org.achartengine.renderer.SimpleSeriesRenderer;

import android.content.Context;

public class RendererValueHolder {

	private String chartTitle;
	private boolean isShowChartTitle;
	private String xTitle;
	private String yTitle;
	private double xMin;
	private double xMax;
	private double yMin;
	private double yMax;
	private int axesColor;
	private int labelsColor;
	private boolean applyBackgroundGradientColor;
	private int FromBackgroundGradientColor;
	private int ToBackgroundGradientColor;
	private Context context;
	private int[] margins = new int[] { 80, 40, 25, 40 };

	private double timeSliderXLeftScale;

	private List<String> titles = new ArrayList<String>();
	private List<Integer> colors = new ArrayList<Integer>();
	private List<PointStyle> pointStyles = new ArrayList<PointStyle>();
	private List<String> types = new ArrayList<String>();

	// xMin,xMax,yMin,yMax are required in lists, when we are using different
	// scales. Which is used in Combined Chart(for now)
	private List<Double> xMinList = new ArrayList<Double>();
	private List<Double> xMaxList = new ArrayList<Double>();
	private List<Double> yMinList = new ArrayList<Double>();
	private List<Double> yMaxList = new ArrayList<Double>();

	private List<String> sliderTextList = new ArrayList<String>();
	private List xValueList = new ArrayList();
	private List<List<Double>> yValueList = new ArrayList<List<Double>>();

	private List detailValueList = new ArrayList();

	private int yLabelMarginTop = 80;
	private float xLegendMarginLeft = 0.67f;
	private List<SimpleSeriesRenderer> seriesRenderers = new ArrayList<SimpleSeriesRenderer>();

	public RendererValueHolder(Context context) {
		this.setContext(context);
	}

	public List<String> getTitles() {
		return titles;
	}

	public void setTitles(List<String> titles) {
		this.titles = titles;
	}

	public List<Integer> getColors() {
		return colors;
	}

	public void setColors(List<Integer> colors) {
		this.colors = colors;
	}

	public List<String> getSliderTextList() {
		return sliderTextList;
	}

	public void setSliderTextList(List<String> sliderTextList) {
		this.sliderTextList = sliderTextList;
	}

	public List getxValueList() {
		return xValueList;
	}

	public void setxValueList(List xValueList) {
		this.xValueList = xValueList;
	}

	public List<List<Double>> getyValueList() {
		return yValueList;
	}

	public void setyValueList(List<List<Double>> yValueList) {
		this.yValueList = yValueList;
	}

	public List<PointStyle> getPointStyles() {
		return pointStyles;
	}

	public void setPointStyles(List<PointStyle> pointStyles) {
		this.pointStyles = pointStyles;
	}

	public String getxTitle() {
		return xTitle;
	}

	public void setxTitle(String xTitle) {
		this.xTitle = xTitle;
	}

	public String getyTitle() {
		return yTitle;
	}

	public void setyTitle(String yTitle) {
		this.yTitle = yTitle;
	}

	public double getxMin() {
		return xMin;
	}

	public void setxMin(double xMin) {
		this.xMin = xMin;
	}

	public double getxMax() {
		return xMax;
	}

	public void setxMax(double xMax) {
		this.xMax = xMax;
	}

	public double getyMin() {
		return yMin;
	}

	public void setyMin(double yMin) {
		this.yMin = yMin;
	}

	public double getyMax() {
		return yMax;
	}

	public void setyMax(double yMax) {
		this.yMax = yMax;
	}

	public int getAxesColor() {
		return axesColor;
	}

	public void setAxesColor(int axesColor) {
		this.axesColor = axesColor;
	}

	public int getLabelsColor() {
		return labelsColor;
	}

	public void setLabelsColor(int labelsColor) {
		this.labelsColor = labelsColor;
	}

	public String getChartTitle() {
		return chartTitle;
	}

	public void setChartTitle(String chartTitle) {
		this.chartTitle = chartTitle;
	}

	public List getDetailValueList() {
		return detailValueList;
	}

	public void setDetailValueList(List detailValueList) {
		this.detailValueList = detailValueList;
	}

	public double getTimeSliderXLeftScale() {
		return timeSliderXLeftScale;
	}

	public void setTimeSliderXLeftScale(double timeSliderXLeftScale) {
		this.timeSliderXLeftScale = timeSliderXLeftScale;
	}

	public List<String> getTypes() {
		return types;
	}

	public void setTypes(List<String> types) {
		this.types = types;
	}

	public List<Double> getxMinList() {
		return xMinList;
	}

	public void setxMinList(List<Double> xMinList) {
		this.xMinList = xMinList;
	}

	public List<Double> getxMaxList() {
		return xMaxList;
	}

	public void setxMaxList(List<Double> xMaxList) {
		this.xMaxList = xMaxList;
	}

	public List<Double> getyMinList() {
		return yMinList;
	}

	public void setyMinList(List<Double> yMinList) {
		this.yMinList = yMinList;
	}

	public List<Double> getyMaxList() {
		return yMaxList;
	}

	public void setyMaxList(List<Double> yMaxList) {
		this.yMaxList = yMaxList;
	}

	public boolean isShowChartTitle() {
		return isShowChartTitle;
	}

	public void setShowChartTitle(boolean isShowChartTitle) {
		this.isShowChartTitle = isShowChartTitle;
	}

	/**
	 * @return the applyBackgroundGradientColor
	 */
	public boolean isApplyBackgroundGradientColor() {
		return applyBackgroundGradientColor;
	}

	/**
	 * @param applyBackgroundGradientColor
	 *            the applyBackgroundGradientColor to set
	 */
	public void setApplyBackgroundGradientColor(boolean applyBackgroundGradientColor) {
		this.applyBackgroundGradientColor = applyBackgroundGradientColor;
	}

	/**
	 * @return the fromBackgroundGradientColor
	 */
	public int getFromBackgroundGradientColor() {
		return FromBackgroundGradientColor;
	}

	/**
	 * @param fromBackgroundGradientColor
	 *            the fromBackgroundGradientColor to set
	 */
	public void setFromBackgroundGradientColor(int fromBackgroundGradientColor) {
		FromBackgroundGradientColor = fromBackgroundGradientColor;
	}

	/**
	 * @return the toBackgroundGradientColor
	 */
	public int getToBackgroundGradientColor() {
		return ToBackgroundGradientColor;
	}

	/**
	 * @param toBackgroundGradientColor
	 *            the toBackgroundGradientColor to set
	 */
	public void setToBackgroundGradientColor(int toBackgroundGradientColor) {
		ToBackgroundGradientColor = toBackgroundGradientColor;
	}

	/**
	 * @return the context
	 */
	public Context getContext() {
		return context;
	}

	/**
	 * @param context
	 *            the context to set
	 */
	public void setContext(Context context) {
		this.context = context;
	}

	public int[] getMargins() {
		return margins;
	}

	public void setMargins(int[] margins) {
		this.margins = margins;
	}

	public int getyLabelMarginTop() {
		return yLabelMarginTop;
	}

	public void setyLabelMarginTop(int yLabelMarginTop) {
		this.yLabelMarginTop = yLabelMarginTop;
	}

	/**
	 * @return the xLegendMarginLeft this is the % of width available for graph
	 */
	public float getxLegendMarginLeft() {
		return xLegendMarginLeft;
	}

	/**
	 * @param xLegendMarginLeft
	 *            this is the % of width available for graph
	 */
	public void setxLegendMarginLeft(float xLegendMarginLeft) {
		this.xLegendMarginLeft = xLegendMarginLeft;
	}

	
	public List<SimpleSeriesRenderer> getSeriesRenderers() {
		return seriesRenderers;
	}

	public void setSeriesRenderers(List<SimpleSeriesRenderer> seriesRenderers) {
		this.seriesRenderers = seriesRenderers;
	}
}
